When building user interface (UI) applications, software developers often use a model-view-controller (MVC) architecture design pattern to integrate between an MVC to reduce coupling between a UI representation and a model. In this way, a software developer of the model may not necessarily be the same individual who develops the UI. The current MVC approach for data binding handles specific tasks of binding model data to a view in a specific UI technology programming model. Under this approach, if software developers want to support different use cases associated with data binding (for example, based on roles or geo-locations), there is a need to develop different controllers for each use case, or to develop one controller that can be used in all scenarios.